from collections import defaultdict
t=int(input())
for _ in range(t):
n=int(input())
d=defaultdict(int)
f=defaultdict(int)
sec=defaultdict(int)
s=set([])
for i in range(n):
x=input().strip()
d[x]+=1
f[x[0]]+=1
sec[x[1]]+=1
s.add(x)
ans=0
for i in 'abcdefghijk':
ans+=f[i]*(f[i]-1)//2
ans+=sec[i]*(sec[i]-1)//2
for i in s:
ans-=d[i]*(d[i]-1)
print(ans)
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#define ll long long
#define pb push_back
#define fr(a,b) for(int i = a; i < b; i++)
#define rep(i,a,b) for(int i = a; i < b; i++)
#define mod 1000000007
#define inf (1LL<<60)
#define all(x) (x).begin(), (x).end()
#define prDouble(x) cout << fixed << setprecision(10) << x
#define triplet pair<ll,pair<ll,ll>>
#define fast_io ios_base::sync_with_stdio(false);cin.tie(NULL)
using namespace std;
using namespace __gnu_pbds;
typedef tree<int,null_type,greater_equal<int>,rb_tree_tag,tree_order_statistics_node_update>ordered_set;//find by order // order of key
int main(){
fast_io;
int t;cin>>t;
while(t--){
ll n;cin>>n;
vector<string> str(n);
map<string,int>mp;
map<char,int>st,end;
for(int i=0;i<n;i++){
cin>>str[i];
}
ll cnt =0;
for(int i=0;i<n;i++){
cnt+=st[str[i][0]]+end[str[i][1]]-2*mp[str[i]];
mp[str[i]]++;
st[str[i][0]]++;
end[str[i][1]]++;
}
cout<<cnt<<endl;
}
return 0;
}
1323B - Count Subrectangles | 991C - Candies |
1463A - Dungeon | 1671D - Insert a Progression |
1671A - String Building | 1671B - Consecutive Points Segment |
1671C - Dolce Vita | 1669G - Fall Down |
4D - Mysterious Present | 1316B - String Modification |
1204A - BowWow and the Timetable | 508B - Anton and currency you all know |
1672A - Log Chopping | 300A - Array |
48D - Permutations | 677C - Vanya and Label |
1583B - Omkar and Heavenly Tree | 1703C - Cypher |
1511C - Yet Another Card Deck | 1698A - XOR Mixup |
1702E - Split Into Two Sets | 1703B - ICPC Balloons |
1702F - Equate Multisets | 1700A - Optimal Path |
665C - Simple Strings | 1708A - Difference Operations |
1703E - Mirror Grid | 1042A - Benches |
1676B - Equal Candies | 1705B - Mark the Dust Sweeper |